package com.hyzx.qbasic.admin.domain.repository;

import com.github.pagehelper.PageInfo;
import com.hyzx.qbasic.admin.model.po.ProcessDefinitionPO;
import com.hyzx.qbasic.admin.model.po.ProcessDefinitionPagedInfoPO;
import com.hyzx.qbasic.admin.model.po.ProcessTaskDefinitionPO;

import java.util.List;

/**
 * Created by 黄江华 on 2018/11/22
 */

public interface IProcessDefinitionRepository {

    PageInfo<ProcessDefinitionPagedInfoPO> getPagedProcessDefinitionList(int pageNum, int pageSize, Integer processCategoryId, String processDefinitionName);

    List<ProcessDefinitionPagedInfoPO> getProcessDefinitionListByCategoryId(Integer processCategoryId);

    List<ProcessDefinitionPagedInfoPO> getProcessDefinitionListByCategoryKey(String processCategoryKey);

    boolean addProcessDefinition(ProcessDefinitionPO record);

    boolean deleteProcessDefinition(List<Integer> processDefinitionIdList);

    ProcessDefinitionPO getProcessDefinition(int processDefinitionId);

    boolean editProcessDefinition(ProcessDefinitionPO record);

    boolean addProcessDefinitionTask(List<ProcessTaskDefinitionPO> tasks);

    List<ProcessTaskDefinitionPO> getTaskDefinition(Integer processDefinitionId);

    boolean deleteTaskDefinition(Integer processDefinitionId);
}
